package com.yihukurama.sysbase.common.utils;


import com.yihukurama.sysbase.common.enums.BusinessEnum;
import com.yihukurama.sysbase.common.enums.FilePathEnum;
import com.yihukurama.sysbase.common.enums.ImageEnum;
import org.apache.commons.lang3.RandomStringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 功能描述: 路径工具类
 *
 * @Author yihukurama
 * @Date: 2023/1/13 15:47
 */
public class PathUtil {

    
    /**
     * 功能描述：根据文件枚举生成路径
     * 文件存储结构为 根路径--->>业务路径--->>文件属性路径--->>文件业务分类路径--->>日期格式路径(2023.4.17)
     * @param rootPath
     * @param businessEnum
     * @param fileEnum
     * @param imageEnum
     * @return
     * @Author yihukurama
     * @date 2023年4月17日 下午1:39:12
     */
    public static String buildRootPath(String rootPath, BusinessEnum businessEnum, FilePathEnum fileEnum, ImageEnum imageEnum) {

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy_MM_dd");

        String sb = rootPath +

                //日期格式路径(2023.1.19)
                "/" + simpleDateFormat.format(new Date()) +

                //业务路径
                (businessEnum == null ? BusinessEnum.OTHER.getDir() : businessEnum.getDir()) +

                //文件属性路径
                (fileEnum == null ? FilePathEnum.COMMON_FILE.getDir() : fileEnum.getDir()) +

                //文件业务分类路径
                "/" +
                (imageEnum == null ? ImageEnum.OTHER_IMG.getTag() : imageEnum.getTag());
    	

    	return sb;
    }

    /**
     * 生成临时文件夹，可用于 打包下载 等操作，记得使用后删除文件夹
     *
     * @return 临时文件夹路径
     */
    public static String buildTempPath(String path) {
        String sb = path +
                BusinessEnum.OTHER.getDir() + System.currentTimeMillis() + RandomStringUtils.randomNumeric(6);
        return sb;
    }
}
